﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SksApp
{
    public partial class OdemeView : BaseView
    {
        public OdemeView()
        {
            InitializeComponent();
        }

        private void btnKapat_Click(object sender, EventArgs e)
        {
            this.Dispose();
            Event.Invoke(null, null);
        }

        private void OdemeView_Load(object sender, EventArgs e)
        {
            cmbTipi.SelectedIndex = 0;
            Liste();
        }

        private void Liste()
        {
            using (SksEntity ent = new SksEntity())
            {
                listBox1.DataSource = ent.OdemeTipleri.ToList();
            }
        }

        private void OdemeBul(OdemeTipi tip)
        {
            if (tip != null)
            {
                txtAdi.Text = tip.Aciklama;
                txtFiyatNo.Text = tip.FiyatNo.ToString();
                txtIndirimOrani.Text = tip.IndirimOrani.ToString();
                txtKomisyonOrani.Text = tip.KomisyonOrani.ToString();
                txtMuhKodu.Text = tip.MuhasebeKodu;
                cmbTipi.SelectedIndex = tip.Tip;
                txtKodu.Text = tip.No.ToString();
            }
        }

        private void Temizle()
        {
            cmbTipi.SelectedIndex = 0;
            txtAdi.Text = "";
            txtFiyatNo.Text = "";
            txtIndirimOrani.Text = "";
            txtKodu.Text = "";
            txtKomisyonOrani.Text = "";
            txtMuhKodu.Text = "";
        }
        private void btnKaydet_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtKodu.Text) && !string.IsNullOrEmpty(txtAdi.Text))
            {
                using (SksEntity ent = new SksEntity())
                {
                    int no = Cevir.Parse<int>(txtKodu.Text);
                    OdemeTipi tip = ent.OdemeTipleri.Where(x => x.No == no).FirstOrDefault();
                    if (tip != null)
                    {
                        tip.Aciklama = txtAdi.Text;
                        tip.FiyatNo = Cevir.Parse<int>(txtFiyatNo.Text);
                        tip.IndirimOrani = Cevir.Parse<decimal>(txtIndirimOrani.Text);
                        tip.KomisyonOrani = Cevir.Parse<decimal>(txtKomisyonOrani.Text);
                        tip.MuhasebeKodu = txtMuhKodu.Text;
                        tip.Tip = (byte)cmbTipi.SelectedIndex;
                    }
                    else
                    {
                        tip = new OdemeTipi();
                        tip.No = no;
                        tip.Aciklama = txtAdi.Text;
                        tip.FiyatNo = Cevir.Parse<int>(txtFiyatNo.Text);
                        tip.IndirimOrani = Cevir.Parse<decimal>(txtIndirimOrani.Text);
                        tip.KomisyonOrani = Cevir.Parse<decimal>(txtKomisyonOrani.Text);
                        tip.MuhasebeKodu = txtMuhKodu.Text;
                        tip.Tip = (byte)cmbTipi.SelectedIndex;
                        ent.OdemeTipleri.Add(tip);
                    }
                    ent.SaveChanges();
                }
                Temizle();
                Liste();
            }
        }

        private void btnSil_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtKodu.Text) && !string.IsNullOrEmpty(txtAdi.Text))
            {
                using (SksEntity ent = new SksEntity())
                {
                    int no = Cevir.Parse<int>(txtKodu.Text);
                    OdemeTipi tip = ent.OdemeTipleri.Where(x => x.No == no).FirstOrDefault();
                    if (tip != null)
                    {
                        ent.OdemeTipleri.Remove(tip);
                        ent.SaveChanges();
                    }
                }
                Temizle();
                Liste();
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex > -1)
            {
                OdemeTipi tip = (OdemeTipi)listBox1.SelectedItem;
                if (tip != null)
                {
                    OdemeBul(tip);
                }
            }
        }
    }
}
